Method and System for Providing Voice Communication Over Data Networks

ABSTRACT

A method and system are disclosed in which an Internet subscriber can establish real-time voice conversations over the Internet. By performing a call negotiation scheme to identify and locate the other calling party, an Internet telephone can establish a voice communication channel over the Internet to a telephony or computer device.

RELATED APPLICATIONS

The application is a continuation of U.S. application Ser. No.09/543,381 filed Apr. 5, 2000 and entitled “Method and System forproviding Voice Communication Over Data Networks” and claims priority toU.S. Application Ser. No. 60/161,168, filed on Oct. 22, 1999 and60/166,085, filed on Nov. 17, 1999, the entire contents of which areincorporated herein by reference.

TECHNICAL FIELD OF THE INVENTION

The invention relates to a system and method for providing voicecommunication to subscribers over data networks.

BACKGROUND OF THE INVENTION

Networks carry three types of information: voice, video, and data.Historically, these different forms of information have been transportedover different networks. Specifically, the telephone network deliveredvoice information; private corporate networks delivered datainformation; and broadcast networks delivered video information. Eachservice was provided by a specific form of infrastructure—the telephonenetwork used copper wires to reach subscribers, broadcast televisionused the airwaves, cable television used coaxial cable, and so forth.

With advances in technology, the different forms of information can nowbe carried by any delivery platform. For example, telephony services(i.e., voice and facsimile) can be transported over data networks, suchas the Internet.

“Internet telephony” refers to the transfer of voice information usingthe Internet protocol (IP) of the TCP/IP or UDP/IP protocol suite.Internet telephony uses the Internet to simulate a telephone connectionbetween two Internet users and to bypass the local exchange carriers'and inter-exchange carrier's telephone networks. Internet telephonyworks by converting voices into data which can be compressed and splitinto packets. These data packets are sent over the Internet like anyother packets and reassembled as audio output at the receiving end. Theubiquitous nature of the Internet allows a user to complete suchInternet telephone connections to many countries around the world.Accordingly, by using the Internet to provide telephony services, theuser can avoid paying per-minute toll charges assessed by the user'slocal exchange carrier and/or inter-exchange carrier. Rather, the useris subject to only his or her local Internet connection fees. The resultmay be considerable savings when compared to international telephonerates.

In addition, the Internet utilizes “dynamic routing,” wherein datapackets are routed using the best routing available for a packet at aparticular moment in time, given the current traffic patterns. Thissystem allows many different communications to be routed simultaneouslyover the same transmission facilities. In contrast, a circuit-switchedtelephone network, such as the public switched telephone network (PSTN),establishes dedicated, end-to-end transmission paths.

Consequently, the Internet allows network resources to be used moreefficiently.

Most existing dial-up systems require both parties to be connected tothe Internet through a multimedia personal computer to establish anInternet telephone call. As shown in FIG. 1, the multimedia personalcomputers, which have been loaded with certain telephony software, canaccess the data network using a local circuit-switched telephone networkto a voice over packet gateway residing in an Internet Service Provider(ISP) point of presence.

The typical multimedia personal computer system used for Internettelephony includes a personal computer, a monitor, ananalog-voice-to-digital-signal and digital-signal-to-analog-voiceconverter (converter), Internet telephone software, a full-duplex soundcard, a microphone, speakers, and a 28 Kbps or higher ratemodulation/demodulation (modem) device. As such, the multimedia personalcomputer system includes several components or devices and is not easilyportable, which may be undesirable for traveling business people.Further, such a personal computer system may be expensive to set up andmaintain.

Accordingly, it would be desirable to provide a method and system forvoice communication over a data network that addresses the drawbacks ofknown systems.

SUMMARY OF THE INVENTION

The present invention relates to a method and system for providing voicecommunication over data networks. The system according to the presentinvention allows subscribers using Internet telephones to conductreal-time voice conversations over a data network and/or over a circuitswitched network.

In accordance with one aspect of the present invention, a method forestablishing voice communication between a first and a second stationover a data network includes the steps of receiving a data networkaddress for the first station at a second station via a firstcommunication channel, disconnecting the first station and the secondstation from that first communication channel, and establishing a secondcommunication channel between the first and the second stations wherebythe station users can conduct voice communication over the data network.The second communication channel is established by using the datanetwork address received at the second station.

In accordance with an additional aspect of the present invention, adevice for initiating voice communication with a second device includesa storage medium having a plurality of programming modules and a singleactivation means for causing the device to establish a communicationchannel over a data network. When the single activation means has notbeen activated, the communication channel between the devices isestablished over a circuit switched network. The single activation meansmay include, but is not limited to, a programmable button, a movableswitch, voice activation, or movement sensor activation.

In accordance with a further aspect of the invention, a device forestablishing voice communication with a second device includes acompatibility module, for determining whether the second device cansupport voice communication over a data network, and a callinitialization module. If the second device supports voice communicationover a data network, the call initialization module automaticallytransmits a command which causes a communication channel to beestablished between the Internet telephonic device and the second deviceover a data network.

In accordance with yet another aspect of the invention, a network serverlocated on a data network includes a storage medium having a pluralityof programming modules and a channel establishment module. Oneprogramming module, the registration module, registers a code and a datanetwork address into a memory in response to receiving a registercommand signal. The code uniquely identifies a calling station connectedto the data network. A second programming module, the address querymodule, causes a search for the code to be performed on the memory inresponse to receiving a search command signal. A third programmingmodule, the address mapping module, identifies the data network addressbased on the search results.

The present invention provides advantages of establishing real-timevoice communication channels over the Internet, and thereby avoid payingper-minute toll charges assessed by local or inter-exchange telephonecarriers. In addition, the present invention enables a user to conductvoice conversations over the Internet without having to purchase andassemble the many components and devices required in a multimediapersonal computer system.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will now be described in greater detail with reference tothe preferred embodiments illustrated in the accompanying drawings, inwhich like elements bear like reference numerals, and wherein:

FIG. 1 illustrates multimedia personal computer systems connected overthe Internet in accordance with the prior art;

FIG. 2A illustrates an Internet telephone call system according to thepresent invention;

FIG. 2B illustrates a first embodiment of the Internet telephone callsystem of FIG. 2A;

FIG. 2C illustrates a second and alternative embodiment of the Internettelephone call system of FIG. 2A;

FIG. 2D illustrates a third and alternative embodiment of the Internettelephone call system of FIG. 2A;

FIG. 2E illustrates a fourth and yet further alternative embodiment ofthe Internet telephone call system of FIG. 2A;

FIG. 3 illustrates stored data in a network server database;

FIG. 4 is a block diagram of the hardware architecture of the networkserver;

FIG. 5 is a block diagram of the memory unit of the network server ofFIG. 4;

FIG. 6 is a perspective view of one embodiment of an Internet telephone;

FIG. 7 is a block diagram of the hardware architecture of the Internettelephone;

FIG. 8 is a block diagram of the memory unit of the Internet telephoneof FIG. 7;

FIG. 9 is an enlarged rear view of a portion of the Internet telephoneof FIG. 6;

FIG. 10 is a flowchart showing a first embodiment of a method ofnegotiating a telephone call over a data network in accordance with FIG.2B;

FIG. 11 is a flowchart showing a second and alternative embodiment ofthe method of negotiating a telephone call over a data network inaccordance with FIG. 2C;

FIG. 12 is a flowchart showing a third and alternative embodiment of themethod of negotiating a telephone call over a data network in accordancewith FIG. 2D; and

FIG. 13 is a flowchart showing a fourth and yet further alternativeembodiment of the method of negotiating a telephone call over a datanetwork in accordance with FIG. 2E.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 2A illustrates a configuration of an Internet telephone call system10. The Internet telephone call system 10 can transport voice over apacket-switched network 12, such as the Internet, using data packets orover a circuit-switched network 14, such as the public switchedtelephone network (PSTN). Accordingly, an Internet subscriber(hereinafter “subscriber” and not shown) having the necessary hardwareand software may conduct real-time voice conversations over the Internet12 or over the PSTN 14, rather than limited to using only the circuitswitched network. The Internet telephones 16, 18 forming the call system10 may include a conventional telephone and an adaptor having Internettelephony enabling hardware and software, e.g., the Komodo Fone™ productavailable from Komodo Technology, Inc. of Los Gatos, Calif. AlternativeInternet telephones 16, 18 may integrate the telephone and the Internettelephony enabling hardware and software into a single system, asdiscussed in further detail below with respect to FIGS. 6-9.

As shown in FIG. 2A, the Internet telephone call system 10 includes atleast two Internet telephones 16, 18, each connecting to a-centraloffice (CO) 20, 22 and/or a local area network (LAN) 24, 26. Further,each Internet telephone 16, 18 has an associated Internet ServiceProvider (ISP) 28, 30 in order to access the Internet 12. As such, thesubscriber may select the manner of communication when making atelephone call.

For example, the subscriber may choose to make a traditional telephonecall, wherein the Internet telephones 16, 18 are linked and the callrouted via a PSTN 14 through the COs 20, 22. Alternatively, thesubscriber may cause the Internet telephone 16, 18 to place thetelephone call over the Internet 12 by accessing the ISP 28, 30 via theLAN 24, 26 or by using a dial-up modem to access the ISP, routingthrough the CO 20, 22.

With standard telephony, each conventional telephone unit has a uniqueand fixed telephone number by which other callers can signal thattelephone unit. In contrast, on the Internet a connected user isassigned a unique but temporary Internet address (IP address)—assignedonly for a specific dial-up session. Similar to a telephone number, theIP address identifies the destination point, or the point on the entiredata network to which the data is being sent. Accordingly, a second usercan locate that first user during a specific dial-up session byidentifying the first user's IP address.

However, after that dial-up session terminates, the IP address isre-assigned to another user for a different dial-up session. Since theIP address assigned to a connected subscriber changes for each dial-upsession, it is necessary for the Internet telephones to quickly andefficiently identify the other's temporary IP address for each Internetcall. The process of transmitting, registering, and identifying theInternet addresses of each Internet telephone is referred to as a “callnegotiation scheme.”

As discussed above, in order for the Internet telephones 16, 18 tocommunicate with one another over the Internet 12, a call negotiationscheme is required. Although either Internet telephone can initiate orreceive an Internet telephone call, for illustrative purposes only, itwill be assumed that the subscriber using the Internet telephone 16 willbe the initiating caller, and the subscriber using the Internettelephone 18 will be the receiving party. Moreover, for illustrativepurposes only, it will be assumed that the subscribers use dial-upmodems to connect to the COs and then access the ISPs.

With reference to FIG. 2B, in one call negotiation scheme, an Internettelephone 16 transmits an identification code to a second Internettelephone 18 over the PSTN 14 during a voice telephone call, asindicated by dashed lines 32. Then the voice telephone call terminates,and a connection is established between the Internet telephone 16 andits ISP 28, as indicated by the solid line 34. A dial-up modem is usedto connect to the CO 20 and then to access the ISP. The ISP 28 assignsan IP address to the Internet telephone 16. Once assigned, the IPaddress assigned to the connected subscriber for that particular dial-upsession and the identification code can be stored in a network server36, for example, in tabular form as illustrated in FIG. 3.

More specifically and as illustrated in FIG. 4, the network server 36includes a processing unit 38, a memory unit 40, a data storage device42, a network controller and interface 44, a display device 46, and aninput device 48. The processing unit 38, which may be, for example, apersonal computer commercially available from Hewlett-Packard Co.,communicates with the various elements via a system bus 50. The memoryunit 40 contains a database 52 which identifies, among other things, theidentification code of each connected Internet telephone 16, 18 and thetemporary IP address assigned to the connected Internet telephones. Thedatabase 52 provides the means for mapping the identification code tothe appropriate IP address, wherein the identification code uniquelyidentifies and is permanently assigned to that Internet telephone. Thedata storage device 42 is used for long-term storage of information.

A valid identification code is required to place or receive telephonecalls over the Internet 12 using that Internet telephone. Further, thedatabase 52 may also contain such information as the Internet callfeatures available to a subscriber. Moreover, another database, whichcan link to the network server 36, maintains subscriber informationbased on the identification code, such as region of sale, date of sale,and other data.

As shown in FIG. 5, the memory unit 40 includes an authorization module54, an address/code registration module 56, an IP address query module58, an address mapping module 60, and a channel establishment module 62.The network server 36 operates under the control of an operating system,such as the well-known UNIX operating system.

In operation, an IP address is assigned to the connected subscriber fora particular dial-up session by the ISP. The IP address is sent to theInternet telephone 16, whereupon the Internet telephone 16 sends the IPaddress and identification code to the authentication module 54 of thenetwork server 36. The authentication module 54 verifies whether theidentification code is valid. Upon proper validation, the address/coderegistration module 56 responds by registering the IP address in thedatabase 52 of the memory unit 40. In one embodiment of the invention,the address/code registration module 56 receives a register commandsignal to register the IP address in the memory unit 40.

Thus, when a search of the database 52 is performed using thetransmitted identification code, the IP address query module 58 receivesa search command signal and causes the address mapping module 60 toidentify the IP address assigned to a subscriber. Next the channelestablishment module 62 establishes a communication channel between thefirst Internet telephone 16 and the second Internet telephone 18. Thenby periodically signaling the network server 36 to indicate theconnection status of the Internet telephones 16, 18 and by updating theIP addresses stored in the database 52 for each connected Internettelephone 16, 18, a dynamic and accurate picture of the Internettelephone environment is continuously maintained. As such, an Internettelephone querying the network server 36 can determine whether a voicecommunication link or channel can be established with a particularsubscriber using Internet facilities.

According to an alternative embodiment of the call negotiation scheme,illustrated in FIG. 2C, the first and second Internet telephones 16, 18can establish a communication channel over the Internet 12 withoutpreviously establishing the voice telephone call. In doing so, the firstsubscriber can avoid incurring the telephone charges associated withplacing that voice call over the circuit switched telephone network 14.Here, it is assumed that the subscriber of the second Internet telephone18 has prior knowledge of the first Internet telephone's 16identification code. Further, the subscribers of the first and secondInternet telephones 16, 18 may have pre-arranged a time to establish thecommunication link. For example, in this alternative call negotiationscheme at the prearranged time, the first Internet telephone 16establishes a connection with its associated ISP 28 via the centraloffice 20, whereupon the ISP assigns an IP address to that firstInternet telephone. The identification code and IP address of the firstInternet telephone 16 are then stored in the network server 36. Whileremaining connected to the Internet 12, the first Internet telephone 16waits for the second Internet telephone 18 to locate and then establishan Internet telephony channel with said first Internet telephone. Whenthe second Internet telephone 18 establishes a connection with itsassociated ISP 30 by routing through central office 22, the secondInternet telephone transmits a search command signal to the networkserver 36 to search for the first Internet telephone's IP address. Bypre-arranging the call time, the subscriber of the first Internettelephone 16 can limit the amount of time spent waiting for the secondInternet telephone 18 to locate and then establish this communicationlink.

In an alternative manner of voice communication, illustrated in FIG. 2D,the subscriber may cause the Internet telephone 16 to place a call witha conventional telephone 64 which does not connect to the Internet 12.Here, the call may route via the PSTN 14, as indicated by dotted lines32, or use the Internet 12, as indicated by solid lines. When using theInternet 12, the subscriber initiates the call using the Internettelephone 16, and the call routes through the CO 20 to the subscriber'sISP 28 which assigns an IP address to the Internet telephone 16. Inresponse to receipt of the subscriber's incoming call, a gatekeeper 66of an Internet Telephony Service Provider (ITSP) with which thesubscriber is associated will determine the appropriate routing to an IPgateway (gateway) 68 serving the destination telephone 64. Accordingly,the call is routed over the Internet 12 to the appropriate IP gateway 68which then connects the call via the PSTN 14 to the CO 70 serving thedestination telephone 64. It will be understood that the call can alsoroute through the gatekeeper 66 and the gateway 68 to the PSTN 14,thereafter routing to the CO 70 serving the destination telephone 64.

In yet a further alternative call negotiation scheme, with reference toFIG. 2E, a first Internet telephone 16 can establish a communicationchannel with a second Internet telephone 18 without having to perform asearch of the database 52. In this call negotiation scheme, a connectionis established between a first Internet telephone 16 and its associatedISP 28, whereupon the ISP assigns an IP address to that first Internettelephone. Then the first Internet telephone 16 establishes acommunication channel with the second Internet telephone 18, the channelrouting via the Internet 12 and PSTN 14 by way of the gateway 68, asdescribed previously and indicated by dashed lines 72. Using thiscommunication channel, the first Internet telephone 16 sends its IPaddress to the second Internet telephone 18. Next the second Internettelephone 18 transmits an acknowledgement signal back to the firstInternet telephone 16 and stores the IP address into memory. Upontransmitting the acknowledgement signal, the communication link 72between the second Internet telephone 18 and the Internet 12disconnects. While remaining connected to the Internet 12, the firstInternet telephone 16 waits for the second Internet telephone 18 tolocate and then establish an Internet telephony channel with said firstInternet telephone, indicated by solid lines 74, using the IP addressstored in the second Internet telephone's memory.

FIG. 6 shows one embodiment of the Internet telephone 16, and FIG. 7depicts the basic components of said Internet telephone. As illustratedin FIGS. 6 and 7, the Internet telephone 16 is preferably a stand-alonedevice which includes a user interface 76, a voice interface 78, aconverter 80, a digital signal processor unit 82 and associated logic, amemory unit 84, and a network interface 86. The Internet telephone 16can perform voice over Internet functions, such as scanning, voicecompression, data packetization, and network interfacing.

The user interface 76 allows a user to interact with the Internettelephone 16. The user interface 76 includes, among other features, akeypad 88 for dialing numbers or activating certain call functions andan audible indicator for indicating operating characteristics and/orinstructions, such as new telephone messages, the call status, orselectable options from a telephonic voice menu, including availablecall features. The user interface 76 may also include a visual display90 for displaying such operating characteristics. In one embodiment, theInternet telephone 16 has a single means for activating a call function.For example, by depressing a programmable button 92 or moving a switch,the Internet telephone 16 can perform a call negotiation scheme, asdiscussed above, or perform a diagnostic test to verify Internetconnectivity, or perform a diagnostic test to troubleshoot voicequality-of-service problems, or activate the telephonic voice menu.Although the Internet telephone 16 is shown as having single buttonactivation 92 of call functions, it will be understood that the Internettelephone may also use voice or video activation. Similarly, thelanguage spoken in voice menu can be translated to another desiredlanguage by using a single activation means.

The voice interface 78, in accordance with conventional practice, is aspeaker or microphone located on the telephone handset 94 and/or base96. Speech signals from the microphone 78 are transmitted to a converter80 that provides the conversion of analog voice into digital signals.Specifically, the analog voice is digitized, by means commonly known inthe field, and the digital data are transmitted to a digital signalprocessor unit (DSP unit) 82 which provides call processing and voiceprocessing.

The DSP unit 82 and associated logic are supported by voice processingsoftware and a memory unit 84, described in greater detail below. TheDSP unit 82 includes a digital signal processor and other controlprocessing units. The DSP unit 82 performs call signaling and control,voice compression and decompression, and packetization anddepacketization functions.

The memory unit 84 includes programmable and dynamic memory, such aselectrically erasable programmable read-only memory (EEPROM) and dynamicrandom access memory (DRAM) devices. The memory unit 84 stores the callnegotiation algorithms (described in greater detail below) which the DSP82 follows, as well as provides temporary storage of incoming data notyet processed by the DSP. In addition, the identification code, asdescribed above, is stored in the memory unit 84.

As illustrated in FIG. 8, the memory unit 84 includes a callinitialization module 100, a call response module 102, an Internettelephone compatibility module 104, a network selection module 106, acode transmission/receipt module 108, and an IP addresstransmission/receipt module 110. The memory unit 84 communicates withthe various elements via a system bus 112. Each element will bedescribed in greater detail below. Moreover, the memory unit 84 operatesunder the control of an operating system 114 which allows the memoryunit to perform multiple tasks, simultaneously.

The network interface 86 allows transmission and reception of voicepackets to and from the Internet telephone 16. For example, the Internettelephone 16 has telephone and/or LAN connectivity. Although theInternet telephone 16 is shown in FIG. 9 as including four means fornetwork connection 98, one of which allows for connection to the PSTN14, it will be understood that the Internet telephone may include morethan four network connectors or as few as two network connectors. Themeans for network connection 98 may include, but is not limited to, RJ11ports, RJ45 ports, RS-232 ports, and USB.

Additionally, while the Internet telephone 16 in FIGS. 6 and 7 combinethe user and voice interfaces 76, 78, the converter 80, the DSP unit 82and associated logic, the memory unit 84, and the network interface 86into a single device, one skilled in the art will appreciate that suchcomponents can be combined or separated on distinct devices withoutsignificantly affecting the functionality of the Internet telephone.

FIG. 10 shows the steps of an exemplary embodiment of a call negotiationscheme to establish a voice communication channel over the Internet 12between a first Internet telephone 16 and a second Internet telephone18, as it relates to FIG. 2B.

The block 205 indicates that a communication channel is establishedbetween the first and second Internet telephones 16, 18, wherein thecommunication channel typically uses a circuit-switched telephonenetwork 14. Specifically, the call initialization module 100 of thefirst Internet telephone 16 places a call to the second Internettelephone 18 via the PSTN 14. The call response module 102 can thendetermine whether a connection has been established between the parties.This step also serves as confirmation to the first subscriber that thesecond subscriber is available to establish voice communication over theInternet 12.

At decision block 210, it is determined whether the Internet telephones16, 18 can support an Internet telephone call. In one embodiment of theinvention, the Internet telephone compatibility module 104 will makethis determination if it detects the other station's capability to doso. For example, the Internet telephone compatibility module 104 candetect the other station's capability to support Internet telephony bysignaling the destination station (using a signal generator) and thenreceiving an appropriate response signal, or acknowledgement (using asignal detector). It will be understood that the determination ofwhether the stations can support Internet telephony can be performedthrough dual tone multi-frequency (DTMF) signaling.

If the answer to decision block 210 is no, then the process moves toblock 215 wherein the subscriber is made aware that the communicationchannel must route over a circuit switched telephone network 14 sincethe other station cannot support Internet telephone calls. Otherwise,the process moves to block 220 where the code transmission/receiptmodule 108 of the first Internet telephone 16 transmits a code, such asits identification code, which uniquely identifies that first station.For example, the subscriber may depress the programmable button 92 totrigger the code transmission/receipt module 108 to transmit the code.

Next at block 225, the second Internet telephone 18 receives the codeand stores it into the memory unit 40. Having stored the code, theprocess proceeds to block 230. Here, the Internet telephones 16, 18disconnect the communication channel (i.e., disconnect the voice linkconnecting the Internet telephones to the PSTN) and attempt to connectto their respective ISP 28, 30, for example, using the callinitialization modules 100.

At decision block 235, it is determined whether or not the Internettelephones 16, 18 have successfully connected to their respective ISP28, 30. If so, the process proceeds to block 240 where the Internettelephones 16, 18 are assigned IP addresses by their ISPs 28, 30. Theassigned IP addresses are then stored in the memory unit 40. Otherwise,the process moves to decision block 245, wherein it is decided whetheror not to re-attempt connecting to the ISP since, due to incorrect“userid” or password or other reasons, the ISP was unavailable. Thenon-connected Internet telephone(s) will make a predetermined number ofattempts to connect to the ISP, the process looping back to decisionblock 235 for each attempt. If a connection is not successfullyestablished after making the predetermined number of attempts, theInternet telephone indicates the failure to the subscriber (block 250).

Having failed to successfully establish connections to the ISPs 28, 30,the Internet telephones 16, 18 can be programmed to then automaticallyestablish a voice telephone call based on predetermined criteria. Forexample, a subscriber may have programmed a prioritized list oftelephony service providers, such as AT&T, MCI, or 10-10-xxx dial-aroundservices, into the memory unit 40 based upon quality-of-service and/orcost preferences. Accordingly, based on the prioritized list, thenetwork selection module 106 of the first Internet telephone 16 willautomatically select the telephone carrier listed as “highest priority”and establish a voice call over that carrier's facilities. But if suchcarrier facilities are unavailable, the Internet telephone 16 willselect the next listed telephone carrier to establish the voice call.

At block 255, the IP address assigned to the connected Internettelephone 16 by the ISP 28, as well as the corresponding code, are sentby the IP address transmission/receipt module 110 to the authenticationmodule 54 of the network server 36. Upon proper validation of the code,the address/code registration module 56 responds by registering the IPaddress and code in the database 52 maintained by the network server 36.

Next at block 260, a search request signal from the second Internettelephone 18 is received by the network server 36. The network server 36responds to the search request signal by transmitting a search commandto the address mapping module 60, wherein the database 52 is searchedfor the code transmitted by the first Internet telephone 16 at block220. By searching the database 52 using the first Internet telephone'scode, the IP address can be identified so that the second Internettelephone 18 can transmit call setup signals to establish an Internettelephony link.

In an alternative embodiment, the EP addresses assigned to bothconnected Internet telephones 16, 18, as well as their correspondingcodes, are sent to the authentication module 54, wherein the mappingfunction can be performed for both Internet telephones.

At decision block 265, it is determined whether or not the search issuccessful. If the answer to this determination is no, then the processmoves to decision block 270 where it is decided whether or not tore-attempt searching the database 52. A predetermined number of searchattempts will be made on the database 52, the process looping back eachtime to decision block 265. If a search is not successful after makingthe predetermined number of attempts, the Internet telephone 18indicates the failure to the subscriber (block 250).

If the answer to the determination at decision block 265 is yes, theprocess proceeds to decision block 275. Here, the second Internettelephone 18 has transmitted call setup signals to establish an Internettelephony link. However, it must be determined whether the channelestablishment module 62 has successfully established such link. If so,the process moves to block 280 where the first and second Internettelephones 16, 18 can conduct real-time voice conversations over theInternet 12. Otherwise, the process moves to decision block 285 where itis decided whether or not to re-attempt establishing the Internettelephony link. A successful link will be attempted a predeterminednumber of times, the process looping back at each attempt to decisionblock 275. If such link is not established after the predeterminednumber of attempts, the Internet telephones 16, 18 indicate the failureto the subscribers (block 250). In one embodiment, having failed tosuccessfully establish the Internet telephony link, the Internettelephones 16, 18 can be programmed to automatically select a telephonyservice provider based on a prioritized list. The network selectionmodule 106 of the first Internet telephone 16 will then place a callusing the telephone carrier listed as “highest priority.”

With reference to FIGS. 2C and 11, in an alternative embodiment of thecall negotiation scheme, the first and second Internet telephones 16, 18can establish a voice communication channel over the Internet 12 withoutfirst establishing the voice call of block 205. In doing so, the firstsubscriber can avoid incurring the telephone charges associated withplacing that voice call over the circuit switched telephone network 14.

The block 305 indicates that the first Internet telephone 16 establishesa communication channel with its associated ISP 28. Specifically, thecall initialization module 100 of the first Internet telephone 16accesses the ISP 28 by using a dial-up modem. The call response module102 can then determine whether a connection has been established betweenthe first Internet telephone 16 and ISP 28. After connecting to the ISP28, the first Internet telephone 16 will place subsequently receivedtelephone calls “on hold” so as not to interfere with the callnegotiation process.

At block 310, the Internet telephone 16 is assigned an IP address. Nextthe process flows to block 315 where the code and IP addresstransmission/receipt modules 108, 110 send the IP address and the codefor the Internet telephone 16 to the authentication module 54 of thenetwork sever 36. Upon proper validation of the code, the address/coderegistration module 56 responds by registering the IP address and codein the database 52. The database 52 provides the mapping of the code tothe corresponding IP address. The first Internet telephone 16 remainsconnected to the ISP 28 while waiting for the second Internet telephone18 to establish an Internet telephony link. As discussed above, bypre-arranging the call time, the subscriber of the first Internettelephone 16 can minimize the time spent waiting for the second Internettelephone 18 to locate and then establish this communication link.

Next at block 320, the second Internet telephone 18 connects to itsassociated ISP 30. Here it is assumed that the subscriber of the secondInternet telephone 18 has prior knowledge of the code for the firstInternet telephone 16. Thus, the subscriber can dial the code via theuser interface 52, causing the second Internet telephone 18 to transmita search request signal to the network server 36. Responsive to receiptof the subscriber's transmission of the search request signal, thenetwork server 36 transmits a search command to the address mappingmodule 60, wherein the database 52 is searched for the first Internettelephone code (block 325).

At decision block 330, it is determined whether the database search wassuccessful. By successfully searching the database 52 using the code,the IP address of the first Internet telephone 16 can be identified.However, if the search was not successful, the process moves to decisionblock 335. Here it is decided whether or not to re-attempt searching thedatabase 38. The search will be performed a predetermined number oftimes when prior search attempts were unsuccessful, the process loopingback at each attempt to decision block 330. If such search isunsuccessful after making the predetermined number of attempts, thesecond Internet telephone 18 indicates the failure to the subscriber(block 340).

If the answer to the determination at decision block 330 is yes, theprocess flows to decision block 345, wherein the second Internettelephone 18 has transmitted a call setup signal to establish theInternet telephony link. However, it must be determined whether thechannel establishment module 62 has successfully established suchInternet telephony link. If so, the process moves to block 350 whereinthe first and second Internet telephones 16, 18 are connected throughthe ISPs 28, 30, and the first and second subscribers can conductreal-time voice conversations over the Internet 12. Otherwise, theprocess moves to decision block 355 where it is decided whether or notto re-attempt establishing the Internet telephony channel.

A successful Internet telephony link will be attempted a predeterminednumber of times, the process looping back at each attempt to decisionblock 345. If such link is not established after the predeterminednumber of attempts, the Internet telephones 16, 18 indicate the failureto the subscribers (block 340). Substantially similar to the callnegotiation scheme of FIG. 10, the Internet telephones 16, 18 can beprogrammed to then automatically select a telephony service providerbased on a prioritized list and establish a voice telephone call.

With reference to FIGS. 2D and 12, in another embodiment of the callnegotiation scheme, the Internet telephone 16 can establish a voicecommunication channel with a conventional telephone 64 that does notconnect to the Internet 12. In doing so, the packet switched network ofthe Internet 12 can integrate with the circuit switched telephonenetwork 14. Such an integration of networks can allow a subscriber tocommunicate with another telephony user located anywhere else in theworld without having to pay the long distance charges associated withmaking a telephone call using the PSTN 14.

The block 405 indicates that a subscriber will decide whether toestablish a communication channel between the Internet telephone 16 andthe destination telephone 64 over the Internet 12 or using the PSTN 14.If the subscriber decides to use the PSTN 14, then at block 415, theInternet and conventional telephones 16, 64 are linked and the callrouted via the PSTN through the COs 20, 70, as indicated by dotted lines32. Otherwise, the process moves to block 420, wherein a communicationchannel is established between the Internet telephone 16 and itsassociated ISP 28, as indicated by solid lines.

Next at block 425, the code transmit/receipt module 108 of the Internettelephone 16 transmits a code, such as the telephone number, whichuniquely identifies the destination telephone 64. At block 430, theInternet telephone 16 connects with the gatekeeper 66, wherein thegatekeeper stores the destination telephone number into its database116. Based on the code, at block 435 the gatekeeper 66 will determinethe appropriate routing to the gateway 68 serving the destinationtelephone 36. Accordingly, a communication path is established betweenthe Internet telephone 16 and the destination telephone 64 whereby thecommunication path routes over the Internet 12 to the appropriategateway 68 (block 440). Then the communication path connects via thePSTN 14 to the CO 70 serving said destination telephone. By using thiscommunication path, the Internet telephone 16 and the destinationtelephone 70 can conduct real-time voice conversations over the Internet12 (block 445).

With reference to FIGS. 2E and 13, in another embodiment of the callnegotiation scheme, the first and second Internet telephones 16, 18 canestablish a voice communication channel over the Internet 12 withoutperforming a search of the database 52.

The block 505 indicates that a communication channel is establishedbetween the first Internet telephone and its associated ISP 28.Specifically, the call initialization module 100 of the first Internettelephone 16 accesses the ISP 28 by using a dial-up modem. The callresponse module 102 can then determine whether a connection has beenestablished between the first Internet telephone 16 and the ISP 28.After connecting to the ISP 28, the first Internet telephone 16 willplace subsequently received telephone calls “on hold” so as not tointerfere with the call negotiation process.

At block 510, the ISP 28 assigns the first Internet telephone 16 an IPaddress which is sent to the first Internet telephone 16 and stored bythe IP address transmission/receipt module 110. Next the process flowsto block 515 where the first Internet telephone 16 establishes aconnection with the second Internet telephone 18. Substantially similarto the call negotiation scheme of FIG. 12, the first Internet telephone16 connects with the gatekeeper 66, wherein the gatekeeper 66 stores thedestination telephone number in its database 116. Based at least in parton the destination telephone number, the gatekeeper 66 will determinethe appropriate routing to the gateway 68 serving the second Internettelephone 18. Then a connection is established over the Internet 12 andthe PSTN 14, by way of the gateway 68 as indicated by the dashed lines72.

At decision block 520, it is determined whether the stations can supportan Internet telephone call. Substantially similar to the callnegotiation scheme of FIG. 10, in one embodiment of the invention, theInternet telephone will make this determination if it detects the otherstation's capability to do so. For example, the Internet telephonecompatibility module 104 can detect the other station's capability tosupport Internet telephony by signaling the destination station and thenreceiving an appropriate response signal, or acknowledgement.

If the answer to decision block 520 is no, then the process moves toblock 525 wherein the subscriber is made aware that the communicationchannel must route over a circuit switched telephone network 14 sincethe other station cannot support Internet telephone calls. Otherwise,the process moves to block 530 where the code transmission/receiptmodule 108 of the first Internet telephone 16 transmits a code, such asits IP address, to the second Internet telephone 18.

Next at block 535, the second Internet telephone 18 stores the code inthe memory unit 84. The code transmission/receipt module 108 of thesecond Internet telephone 18 then transmits an acknowledgement signalback to the first Internet telephone 16. In one embodiment of theinvention, the acknowledgement signal is transmitted back to theInternet telephone 16 without having to take the second Internettelephone 18 off-hook, thereby the first subscriber can avoid incurringthe telephone charges associated with placing that call. For example,the Internet telephone can identify the call as being initiated fromanother Internet telephone by busing out-of-band signaling, such as SS7signaling.

In response to receipt of the acknowledgement signal, at block 540, thefirst Internet telephone 16 sends call setup signals to establish theInternet telephony link. For example, the network selection module 106transmits the call setup signals, wherein the Internet 12 is selected toestablish a communication channel between the first and second Internettelephones 16, 18.

However, it must be determined whether such link has been successfullyestablished (decision block 545). If so, the process moves to block 550where the first and second Internet telephones 16, 18 can conductreal-time voice conversations over the Internet 12.

Otherwise, the process moves to decision block 555, wherein it isdecided whether or not to re-attempt establishing the Internet telephonylink. A successful link will be attempted a predetermined number oftimes, the process looping back at each attempt to decision block 545.If such link is not established after the predetermined number ofattempts, the Internet telephones 16, 18 indicate the failure to thesubscribers (block 560). In one embodiment, having failed tosuccessfully establish the Internet telephony link, the Internettelephones 16, 18 can be programmed to automatically select a telephonyservice provider based on a prioritized list and then establish a voicetelephone call. Substantially similar to the call negotiation schemes ofFIGS. 10 and 11, the Internet telephones 16, 18 can be programmed tothen automatically select a telephony service provider based on aprioritized list and establish a voice telephone call.

The present invention concerns a method and communication system forproviding voice communication over the Internet. It is within the scopeof the present invention that the call negotiation schemes of FIGS.10-13 are performed by activating a single means. While the inventionhas been described in detail with reference to the preferred embodimentsthereof, it will be apparent to one skilled in the art that variouschanges and modifications can be made and equivalents employed withoutdeparting from the present invention.

1. (canceled)
 2. (canceled)
 3. (canceled)
 4. (canceled)
 5. (canceled) 6.(canceled)
 7. (canceled)
 8. (canceled)
 9. (canceled)
 10. (canceled) 11.(canceled)
 12. (canceled)
 13. (canceled)
 14. (canceled)
 15. (canceled)16. (canceled)
 17. (canceled)
 18. (canceled)
 19. (canceled) 20.(canceled)
 21. (canceled)
 22. (canceled)
 23. (canceled)
 24. (canceled)25. (canceled)
 26. (canceled)
 27. (canceled)
 28. (canceled) 29.(canceled)
 30. (canceled)
 31. (canceled)
 32. (canceled)
 33. (canceled)34. (canceled)
 35. (canceled)
 36. (canceled)
 37. (canceled) 38.(canceled)
 39. (canceled)
 40. (canceled)
 41. (canceled)
 42. (canceled)43. (canceled)
 44. (canceled)
 45. (canceled)
 46. (canceled)
 47. A methodfor communicating, comprising: receiving a network address and anidentification code from a first station, wherein the network address isassociated with the first station and the identification code uniquelyidentifies the first station; storing the network address and theidentification code in a memory; receiving a search request from asecond station, the search request identifying the identification code;in response to the search request, identifying the network addressbased, at least in part, on the identification code; and establishing acommunication channel between the first station and the second station.48. The method of claim 47, further comprising assigning the networkaddress to the first station.
 49. The method of claim 47, wherein theidentification code comprises a telephone number.
 50. The method ofclaim 47, wherein: receiving the network address and the identificationcode from the first station comprises receiving the network address andthe identification code at a network server associated with a firstnetwork; storing the network address and the identification codecomprises storing the network address and the identification code in amemory at the network server; and establishing the communication channelcomprises establishing the communication channel between the firststation and the second station over at least a portion of the firstnetwork.
 51. The method of claim 47, wherein receiving the searchrequest comprises: transmitting the identification code from the firststation to the second station; and receiving the search request from thesecond station, wherein the search request identifies the identificationcode.
 52. The method of claim 51, wherein transmitting theidentification code from the first station to the second stationcomprises: establishing a communication channel between the firststation and the second station over a second network; and transmittingthe identification code from the first station to the second stationover the communication channel established over the second network. 53.The method of claim 52, further comprising: determining whether thefirst station and the second station can support a communication channelfor voice communication over the first network; and in response todetermining that the first station and the second station can support acommunication channel for voice communication over the first network,terminating the communication channel between the first station and thesecond station over the second network.
 54. The method of claim 53,wherein determining whether the first station and the second station cansupport a communication channel for voice communication over the firstnetwork comprises: transmitting a signal from the first station to thesecond station; and determining based on a response received from thesecond station at the first station whether the first station and thesecond station can support a communication channel for voicecommunication over the first network.
 55. A system for communication,comprising: a first station; a second station; a first network operableto communicate information; and a network server, operable to: receive anetwork address and an identification code from the first station,wherein the network address is associated with the first station and theidentification code uniquely identifies the first station; store thenetwork address and the identification code in a memory; receive asearch request from the second station, the search request identifyingthe identification code; in response to the search request, identify thenetwork address based, at least in part, on the identification code;communicate the network address to the second station; and establish acommunication channel between the first station and the second stationover the first network.
 56. The system of claim 55, wherein theidentification code comprises a telephone number.
 57. The system ofclaim 55, wherein: the first station is operable to transmit theidentification code to the second station; and the second station isoperable to transmit the search request to the network server, whereinthe search request identifies the identification code.
 58. The system ofclaim 57, further comprising a second network, and wherein the firststation is operable to transmit the identification code to the secondstation by: establishing a communication channel between the firststation and the second station over a second network; and transmittingthe identification code to the second station over the communicationchannel established over the second network.
 59. The system of claim 58,wherein the first station is further operable to: determine whether thefirst station and the second station can support a communication channelfor voice communication over the first network; and in response todetermining that the first station and the second station can support acommunication channel for voice communication over the first network,terminate the communication channel between the first station and thesecond station over the second network.
 60. The system of claim 59,wherein the first station is further operable to determine whether thefirst station and the second station can support a communication channelfor voice communication over the first network by: transmitting a signalto the second station; and determining, based on a response receivedfrom the second station, whether the first station and the secondstation can support a communication channel for voice communication overthe first network.
 61. A communication apparatus, comprising: anauthentication module operable to receive a network address and anidentification code from the first station, wherein the network addressis associated with the first station and the identification codeuniquely identifies the first station; an address/code registrationmodule operable to store the network address and the identification codein a memory; an address query module operable to: receive a searchrequest from the second station, the search request identifying theidentification code; and in response to the search request, identify thenetwork address based, at least in part, on the identification code; anda channel establishment module operable to establish a communicationchannel between the first station and the second station over the firstnetwork.
 62. The communication apparatus of claim 61, wherein theidentification code comprises a telephone number.
 63. A system forcommunicating, comprising: means for receiving a network address and anidentification code from a first station, wherein the network address isassociated with the first station and the identification code uniquelyidentifies the first station; means for storing the network address andthe identification code in a memory; means for receiving a searchrequest from a second station, the search request identifying theidentification code; means for identifying the network address based, atleast in part, on the identification code in response to the searchrequest; and means for establishing a communication channel between thefirst station and the second station.
 64. A method for communicating,comprising: receiving an identification code from a first station,wherein the identification code uniquely identifies a second stationthat is coupled to a circuit-switched network; identifying a gatewayassociated with the second station, wherein the gateway couples thecircuit-switched network to a packet-based network; determining a routeto the identified gateway; establishing a first communication channelbetween the first station and the second station using the determinedroute, wherein the route traverses at least a portion of thepacket-based network and at least a portion of the circuit-switchednetwork; determining whether the second station supports packet-basedcommunication; and in response to determining that the second stationsupports packet-based communication, establishing a second communicationchannel between the first station and the second station over thepacket-based network.
 65. The method of claim 64, wherein establishingthe second communication channel comprises: establishing the secondcommunication channel; and terminating the first communication channel.66. The method of claim 64, further comprising assigning a networkaddress to the first station.
 67. The method of claim 64, whereindetermining whether the second station supports packet-basedcommunication comprises: transmitting a call setup signal from the firststation to the second station over the packet-based network and thecircuit-switched network; determining whether the second stationsupports packet-based communication based at least in part on whetherthe first station receives an acknowledgement signal from the secondstation.
 68. The method of claim 67, wherein transmitting the call setupsignal comprises transmitting an out-of-band signal.
 69. The method ofclaim 68, wherein the out-of-band signals comprise Signaling System #7(SS7) signals.
 70. The method of claim 67, further comprising:receiving, at the second station, the call setup message; andtransmitting, from the second station, an acknowledgement signal to thefirst station without the second station being taken off the hook.
 71. Asystem for communicating, comprising: a first station; a second station;a circuit-switched network operable to communicate information inaccordance with a circuit-switched communication protocol; apacket-based network operable to communicate information in accordancewith a packet-based communication protocol; and a network serveroperable to: receive an identification code from the first station,wherein the identification code uniquely identifies a second stationthat is coupled to a circuit-switched network; identify a gatewayassociated with the second station, wherein the gateway couples thecircuit-switched network to the packet-based network; determine a routeto the identified gateway; and establish a first communication channelbetween the first station and the second station using the determinedroute, wherein the route traverses at least a portion of thepacket-based network and at least a portion of the circuit-switchednetwork, wherein the first station is further operable to: determinewhether the second station supports packet-based communication; and inresponse to determining that the second station supports packet-basedcommunication, establish a second communication channel between thefirst station and the second station over the packet-based network. 72.The system of claim 71, wherein the network server is operable toestablish the second communication channel by: establishing the secondcommunication channel; and terminating the first communication channel.73. The system of claim 71, wherein the network server is operable todetermine whether the second station supports packet-based communicationby: transmitting a call setup signal from the first station to thesecond station over the packet-based network and the circuit-switchednetwork; determining whether the second station supports packet-basedcommunication based at least in part on whether the first stationreceives an acknowledgement signal from the second station.
 74. Thesystem of claim 73, wherein the first station is further operable totransmit the call setup signal by transmitting an out-of-band signal.75. The system of claim 74, wherein the out-of-band signals compriseSignaling System #7 (SS7) signals.
 76. The system of claim 73, whereinthe second station is operable to: receive the call setup message; andtransmit an acknowledgement signal to the first station without beingtaken off the hook.
 77. A system for communicating, comprising: meansfor receiving an identification code from a first station, wherein theidentification code uniquely identifies a second station that is coupledto a circuit-switched network; means for identifying a gatewayassociated with the second station, wherein the gateway couples thecircuit-switched network to a packet-based network; means fordetermining a route to the identified gateway; means for establishing afirst communication channel between the first station and the secondstation using the determined route, wherein the route traverses at leasta portion of the packet-based network and at least a portion of thecircuit-switched network; means for determining whether the secondstation supports packet-based communication; and means for establishinga second communication channel between the first station and the secondstation over the packet-based network in response to determining thatthe second station supports packet-based communication.